Hướng dẫn xây dựng game điều khiển giỏ hoặc thuyền bắt vật thể rơi từ trên xuống — tích hợp biến điểm, mạng sống, clone và phát hiện va chạm.
Giới thiệu dự án
Trò chơi bắt rơi vật thể là dự án kinh điển trên Scratch: vật thể (trái cây, bóng, sao…) rơi từ trên sân khấu, người chơi dùng phím mũi tên trái/phải đưa giỏ bắt để hứng. Bắt trúng → cộng điểm; để rơi xuống đáy → mất mạng. Hết mạng → game over.
Dự án lớp 7 kết hợp biến, clone, vòng lặp và phát hiện va chạm — nền tảng cho nhiều game arcade
Điều khiển
Di chuyển giỏ bắt theo trục ngang bằng phím mũi tên
Vật rơi
Sinh vật thể ở vị trí ngẫu nhiên và rơi xuống
Điểm & mạng
Biến theo dõi điểm số và số lần bỏ lỡ
Clone
Tạo nhiều vật rơi liên tục mà không cần nhiều sprite
💡 Ghi nhớ
Thời gian hoàn thành ước tính: 2–4 giờ. Làm phiên bản cơ bản trước (một loại vật, 3 mạng), rồi mới thêm âm thanh, nhiều costume và tăng độ khó.
Chuẩn bị
Tạo dự án mới, đặt tên ví dụ Bat-roi-vat-the. Bạn cần tối thiểu:
Sprite giỏ bắt (Basket, thuyền, xe… ) — người chơi điều khiển, đặt ở cạnh dưới sân khấu.
Sprite vật rơi (táo, bóng, ngôi sao…) — có thể thêm nhiều costume để đổi hình ngẫu nhiên.
Phông nền đơn giản — trời, phòng, hoặc màu nền dịu.
Biến điểm và mạng tạo trong nhóm Biến — chọn "cho tất cả sprites"
Bước 1: Tạo biến điểm và mạng
Hệ thống điểm
Nhóm Biến → Make a Variable → tên điểm, chọn For all sprites.
Tạo thêm biến mạng, cũng cho tất cả sprites.
Tick hiển thị cả hai trên sân khấu; kéo lên góc trên cho dễ nhìn.
khi nhấn cờ xanh đặt [điểm v] thành [0] đặt [mạng v] thành [3]
Đặt script reset trên sprite giỏ bắt hoặc sprite vật rơi — miễn chạy một lần khi cờ xanh. Giá trị khởi đầu: 0 điểm, 3 mạng.
Bước 2: Lập trình giỏ bắt
Điều khiển người chơi
Giỏ chỉ di chuyển ngang (trục x), giữ cố định ở cạnh dưới (ví dụ y = -140).
Có thể dùng "khi phím được nhấn" hoặc kiểm tra phím trong vòng lặp mãi
khi nhấn cờ xanh đi tới x: [0] y: [-140] lặp mãi nếu <phím [mũi tên phải v] được nhấn?> thì thay đổi x thêm [12] kết thúc nếu <phím [mũi tên trái v] được nhấn?> thì thay đổi x thêm [-12] kết thúc kết thúc
Tăng/giảm số 12 để đổi tốc độ giỏ — số lớn hơn = game khó hơn vì phản xạ phải nhanh hơn.
📌 Tùy chọn
Thêm khối nếu chạm [cạnh v]? sau khi di chuyển để giỏ không ra khỏi màn hình — hoặc giới hạn x trong khoảng -220 đến 220.
Bước 3: Vật thể rơi bằng clone
Sinh vật thể liên tục
Dùng clone để nhiều vật rơi cùng lúc mà chỉ cần một sprite mẫu. Sprite gốc ẩn; chỉ clone hiện và rơi.
Khối tạo clone và "khi tôi bắt đầu là bản sao" nằm trong nhóm Điều khiển
Script sprite gốc (sinh clone)
khi nhấn cờ xanh ẩn lặp mãi tạo bản sao của [bản thân v] đợi [1] giây kết thúc
Giảm thời gian đợi (ví dụ 0,5 giây) để vật rơi dày hơn — game khó hơn.
Bước 4: Hành vi của từng vật rơi
Rơi, bắt, trượt
khi tôi bắt đầu là bản sao hiện chuyển sang trang phục [trang phục ngẫu nhiên v] đi tới x: (số ngẫu nhiên từ (-220) đến (220)) y: [180] lặp mãi thay đổi y thêm [-5] nếu <chạm [Giỏ v]?> thì thay đổi [điểm v] thêm [1] phát tiếng [pop v] xóa bản sao này kết thúc nếu <(y) < [-170]> thì thay đổi [mạng v] thêm [-1] phát tiếng [bonk v] xóa bản sao này kết thúc kết thúc
📌 Logic tóm tắt
Bắt trúng: chạm giỏ → +1 điểm → xóa clone.
Bỏ lỡ: y < -170 (chạm đáy) → -1 mạng → xóa clone.
Mỗi clone xử lý độc lập trong vòng lặp mãi riêng của nó.
⚠️ Lưu ý
Đổi Giỏ trong khối chạm đúng tên sprite giỏ bắt của bạn. Nếu dùng tên khác (Thuyền, Xe…), phải chọn lại trong menu thả xuống.
Bước 5: Game Over và chiến thắng
Kết thúc trò chơi
Khi hết mạng
khi nhấn cờ xanh lặp mãi nếu <(mạng) < [1]> thì nói [Game Over!] trong [3] giây dừng [tất cả v] kết thúc kết thúc
Khi đủ điểm thắng (tùy chọn)
nếu <(điểm) > [29]> thì nói [Bạn thắng!] trong [3] giây dừng [tất cả v] kết thúc
Đặt script kiểm tra trong vòng lặp mãi trên sprite giỏ hoặc Stage logic — điều kiện thắng (ví dụ 30 điểm) tùy bạn cân bằng độ khó.
💡 Ghi nhớ
Có thể dùng phát thông bái [game over] thay vì kiểm tra biến trực tiếp — nhiều sprite cùng lắng nghe một thông báo để dừng đồng bộ.
Mở rộng dự án
Vật thưởng và vật phạt
Thêm costume vàng hoặc sprite riêng: bắt được +5 điểm; bắt nhầm "bom" → -1 mạng ngay. Dùng nếu trang phục = … hoặc biến loại trên clone.
Tăng độ khó theo điểm
Biến cấp: khi điểm > 10 → giảm đợi giữa các clone xuống 0,7 giây; khi > 20 → tăng tốc rơi (thay đổi y thêm -8 thay vì -5).
Đồng hồ thử thách
Bật hiển thị đồng hồ, đặt về 0 khi cờ xanh. Thắng khi đạt 20 điểm trong 60 giây — kết hợp biến điểm và khối cảm biến thời gian.
📌 Ý tưởng sáng tạo lớp 7
Chủ đề bắt táo, bóng rổ, sách rơi trong thư viện.
Hiệu ứng particle khi bắt trúng (clone nhỏ bay ra rồi xóa).
Bảng xếp hạng local bằng list lưu 5 điểm cao nhất.
Kiểm tra và hoàn thiện
Cờ xanh: điểm = 0, mạng = 3; giỏ ở vị trí xuất phát.
Phím trái/phải di chuyển mượt, không ra khỏi màn.
Vật rơi xuất hiện ngẫu nhiên phía trên và rơi thẳng.
Bắt trúng → điểm tăng, vật biến mất.
Bỏ lỡ → mạng giảm, không bị trừ hai lần cho cùng một vật.
Mạng = 0 → game dừng, thông báo rõ ràng.
Nhờ bạn chơi — độ khó có vừa sức không?
⚠️ Lỗi thường gặp
Quên xóa bản sao sau khi bắt hoặc rơi — clone tích tụ, game lag. Mỗi nhánh kết thúc phải có xóa bản sao này.
💡 Ghi nhớ
Game bắt rơi là dự án lớp 7 hoàn chỉnh: bạn đã ghép input người chơi, physics đơn giản, quản lý trạng thái và vòng đời clone. Đây là bước chuẩn bị tốt cho game phức tạp hơn ở lớp trên.